In the field of disk storage, it is common practice to pre-record servo information upon a magnetic disk when the disk is manufactured. The servo information, which takes the form of signal "bursts", is recorded along with other information. It is normally recorded at regular angular intervals on the disk, and is not meant to be re-written during normal use. Therefore, in so-called embedded servo systems, wherein the same disk surface carries both servo information and user data, disk formatting techniques must accommodate radially-extending areas where user data cannot be stored.
One formatting technique allows disk data blocks to be placed such that they are split by such servo areas. This technique enables data blocks to be placed more freely than if they were constrained to be contiguous. Therefore, more blocks can be placed along many tracks on the disk, increasing storage density. This improvement does have a cost, however, because disk controllers used with such disks must be able to ignore the non-data portion while reading a block, and avoid it while writing.
Conceptually, a simple timing mark could indicate the times during the rotation of the disk that a split occurs. For example, if a disk rotates once every 16 milliseconds and there are 4 radially-extending servo areas, then splitting could occur (if necessary) at 4-millisecond intervals. However, due to spin speed variation and other effects, such an approach does not consistently yield the same byte position to split a given block during a read or write. Such a result is unacceptable from the standpoint of reliable data storage. Therefore, disk drives having split blocks generally have means for identifying the split location by byte position within each split block. This approach is more complicated than a simple timing system.
Disks having split blocks may also employ another density-improvement technique which unfortunately has the effect of increasing split-related complexity. It is known to arrange blocks of data in concentric bands or zones such as is illustrated in U.S. Pat. No. 4,858,034 issued Aug. 15, 1989 to Hassel et al. and entitled "Modular Unitary Disk File Subsystem With Differing Density Zones". Using that approach, data blocks along the inner track of a given zone are recorded near a maximum linear density obtainable with a given combination of media, head, and controller electronics. This approach increases complexity because the controller must account for differences between the zones. In particular, zones may have blocks split in different locations, so that just keeping track of split locations becomes a significant chore. Also, the number of such zones may be large if each zone is formatted to have only one more block than its inwardly-adjacent neighbor.
Currently, there are different techniques used to identify the split locations. One technique requires blocks to be split at predetermined locations, for example in the middle. A counter then determines when a predetermined number of bytes have been transferred to find the split location. While this approach is simple, it suffers from inflexibility: instead of forcing whole blocks to be contiguous, half-blocks are forced to be contiguous. Thus the placement of half-blocks is constrained, resulting in non-optimum storage density.
Other splitting techniques that improve flexibility generally require that the split locations be recorded somewhere, for example in a table in RAM or on the disk itself. Therefore, they are either more costly or complicated, or tend to reduce the very density gains they strive to achieve. For example, in one scheme the split location is recorded in a special "header" field appended to each disk block. This header field consumes disk area by making each block larger than otherwise necessary.
A simple, inexpensive block splitting technique is needed to maximize the storage density of disks using split-block formats.